package com.tomclaw.mandarin.main.tasks;
import android.content.ContentResolver;
import android.content.Context;
import com.tomclaw.mandarin.core.GlobalProvider;
import com.tomclaw.mandarin.core.PleaseWaitTask;
import com.tomclaw.mandarin.core.QueryHelper;
import com.tomclaw.mandarin.core.RequestHelper;
import com.tomclaw.mandarin.core.exceptions.BuddyNotFoundException;
import com.tomclaw.mandarin.im.BuddyCursor;
import java.util.Collection;
/**
* Created by Solkin on 13.06.2014.
*/
public class BuddyRemoveTask extends PleaseWaitTask {
private Collection<Integer> buddyDbIds;
public BuddyRemoveTask(Context context, Collection<Integer> buddyDbIds) {
super(context);
this.buddyDbIds = buddyDbIds;
}
@Override
public void executeBackground() throws Throwable {
Context context = getWeakObject();
if (context != null) {
ContentResolver contentResolver = context.getContentResolver();
for (int buddyDbId : buddyDbIds) {
BuddyCursor buddyCursor = null;
try {
buddyCursor = QueryHelper.getBuddyCursor(contentResolver, buddyDbId);
int accountDbId = buddyCursor.getBuddyAccountDbId();
String groupName = buddyCursor.getBuddyGroup();
String buddyId = buddyCursor.getBuddyId();
// Mark as removing.
QueryHelper.modifyOperation(contentResolver, buddyDbId,
GlobalProvider.ROSTER_BUDDY_OPERATION_REMOVE);
// Remove request.
RequestHelper.requestRemove(contentResolver, accountDbId, groupName, buddyId);
} catch (BuddyNotFoundException ignored) {
// Wha-a-a-at?! No buddy found.
} finally {
if (buddyCursor != null) {
buddyCursor.close();
}
}
}
}
}
}